#ifndef ANTIDEBUGUTILS_H
#define ANTIDEBUGUTILS_H
#include "windows.h"

class AntiDebugUtils
{

typedef NTSTATUS(NTAPI *pfnNtSetInformationThread)(_In_ HANDLE ThreadHandle, _In_ ULONG ThreadInformationClass,
                                                       _In_ PVOID ThreadInformation, _In_ ULONG ThreadInformationLength);

private:

    AntiDebugUtils();

    inline static bool anitDebug_isDebuggerPresent();
    inline static bool antiDebug_CheckRemoteDebuggerPresent();
    inline static bool antiDebug_DebugRegister();

    inline static void antiDebug_HideFromDebugger();
    inline static bool antiDebug_RtlGetNtGlobalFlags();

public:
    static bool checkAntiDebug();
};

#endif // ANTIDEBUGUTILS_H
